﻿Imports Microsoft.SqlServer.Server
Public Class DproformaCabecera

    Public Shared Function SeleccionarXEstado(ByVal descEmpresa As String) As List(Of EproformaCabecera)
        Dim proformas As List(Of EproformaCabecera) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proforma_selXEstado", cn)
                cmd.CommandType = CommandType.StoredProcedure
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EproformaCabecera)
                            Dim vendedor As EproformaCabecera = Nothing 'tipo 
                            Do While dr.Read
                                'vendedor = New EproformaCabecera( _
                                '    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                '    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                '    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                '    dr.GetInt32(dr.GetOrdinal("idCliente")), _
                                '    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                '    dr.GetString(dr.GetOrdinal("nombre")), _
                                '    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                '    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                '    dr.GetString(dr.GetOrdinal("estado")), _
                                '    dr.GetInt32(dr.GetOrdinal("idUsuario")), _
                                '    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                '    dr.GetInt32(dr.GetOrdinal("edad")), _
                                '    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                '    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                '    dr.GetString(dr.GetOrdinal("nacionalidad")), _
                                '    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                '    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                '    dr.GetString(dr.GetOrdinal("email")), _
                                '    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                '    dr.GetString(dr.GetOrdinal("direccion")), _
                                '    dr.GetString(dr.GetOrdinal("nroPartida")), _
                                '    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                '    dr.GetInt32(dr.GetOrdinal("idEntidadFin")))
                                proformas.Add(vendedor)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera, ByRef idProforma As Integer) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaCabecera_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idPosCliente", SqlDbType.Int).Value = pProformaCabecera.EposibleCliente.idPosCliente
                cmd.Parameters.Add("@totalMonto", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.totalMonto
                cmd.Parameters.Add("@totalMontoFinal", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.totalMontoFinal
                cmd.Parameters.Add("@fchDscto", SqlDbType.VarChar, 10).Value = pProformaCabecera.fchDscto
                cmd.Parameters.Add("@idRangoEdad", SqlDbType.Int).Value = pProformaCabecera.ErangoEdad.idRangoEdad
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@idNivelInteres", SqlDbType.Int).Value = pProformaCabecera.EnivelInteres.idNivelInteres
                cmd.Parameters.Add("@idComoSeEntero", SqlDbType.Int).Value = pProformaCabecera.EcomoSeEntero.idComoSeEntero
                cmd.Parameters.Add("@idFormaContacto", SqlDbType.Int).Value = pProformaCabecera.EformaContacto.idFormaContacto
                cmd.Parameters.Add("@vigenciaDescuento", SqlDbType.Int).Value = pProformaCabecera.vigenciaDescuento
                cmd.Parameters.Add("@montoAdicional", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.montoAdicional
                cmd.Parameters.Add("@descuento", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.descuento
                cmd.Parameters.Add("@idPerfilCrediticio", SqlDbType.Int).Value = pProformaCabecera.EperfilCrediticio.idPerfilCrediticio
                cmd.Parameters.Add("@idCorredora", SqlDbType.Int).Value = pProformaCabecera.Ecorredora.idCorredora
                cmd.Parameters.Add("@cuotaInicialPorc", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.cuotaInicialPorc
                cmd.Parameters.Add("@montoInicial", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.montoInicial
                cmd.Parameters.Add("@saldoAFinanciar", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.saldoAFinanciar
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pProformaCabecera.EentidadFin.idEntidadFin
                cmd.Parameters.Add("@nroAños", SqlDbType.Int).Value = pProformaCabecera.nroAños
                cmd.Parameters.Add("@tasaInteres", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.tasaInteres
                cmd.Parameters.Add("@valorCuota", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.valorCuota
                cmd.Parameters.Add("@descCtaInicial", SqlDbType.Text).Value = pProformaCabecera.descCtaInicial
                cmd.Parameters.Add("@descSaldo", SqlDbType.Text).Value = pProformaCabecera.descSaldo
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pProformaCabecera.observacion
                cmd.Parameters.Add("@idTpoUsoInmueble", SqlDbType.Int).Value = pProformaCabecera.EtpoUsoInmueble.idTpoUsoInmueble
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pProformaCabecera.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idProforma = Convert.ToInt32(cmd.Parameters("@idProforma").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function AñadirVersus(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera, ByRef idProforma As Integer) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaCabecera_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idEmpresa", SqlDbType.Int).Value = pProformaCabecera.idEmpresa
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@descProyecto", SqlDbType.VarChar, 55).Value = pProformaCabecera.descProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@descEtapa", SqlDbType.VarChar, 55).Value = pProformaCabecera.descEtapa
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Direction = ParameterDirection.Output
                cmd.Parameters.Add("@idPosCliente", SqlDbType.Int).Value = pProformaCabecera.EposibleCliente.idPosCliente
                cmd.Parameters.Add("@totalMonto", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.totalMonto
                cmd.Parameters.Add("@totalMontoFinal", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.totalMontoFinal
                cmd.Parameters.Add("@idRangoEdad", SqlDbType.Int).Value = pProformaCabecera.ErangoEdad.idRangoEdad
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@idNivelInteres", SqlDbType.Int).Value = pProformaCabecera.EnivelInteres.idNivelInteres
                cmd.Parameters.Add("@idComoSeEntero", SqlDbType.Int).Value = pProformaCabecera.EcomoSeEntero.idComoSeEntero
                cmd.Parameters.Add("@idFormaContacto", SqlDbType.Int).Value = pProformaCabecera.EformaContacto.idFormaContacto
                cmd.Parameters.Add("@vigenciaDescuento", SqlDbType.Int).Value = pProformaCabecera.vigenciaDescuento
                cmd.Parameters.Add("@montoAdicional", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.montoAdicional
                cmd.Parameters.Add("@descuento", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.descuento
                cmd.Parameters.Add("@idPerfilCrediticio", SqlDbType.Int).Value = pProformaCabecera.EperfilCrediticio.idPerfilCrediticio
                cmd.Parameters.Add("@idCorredora", SqlDbType.Int).Value = pProformaCabecera.Ecorredora.idCorredora
                cmd.Parameters.Add("@cuotaInicialPorc", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.cuotaInicialPorc
                cmd.Parameters.Add("@montoInicial", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.montoInicial
                cmd.Parameters.Add("@saldoAFinanciar", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.saldoAFinanciar
                cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pProformaCabecera.EentidadFin.idEntidadFin
                cmd.Parameters.Add("@nroAños", SqlDbType.Int).Value = pProformaCabecera.nroAños
                cmd.Parameters.Add("@tasaInteres", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.tasaInteres
                cmd.Parameters.Add("@valorCuota", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.valorCuota
                cmd.Parameters.Add("@descCtaInicial", SqlDbType.Text).Value = pProformaCabecera.descCtaInicial
                cmd.Parameters.Add("@descSaldo", SqlDbType.Text).Value = pProformaCabecera.descSaldo
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pProformaCabecera.observacion
                cmd.Parameters.Add("@idTpoUsoInmueble", SqlDbType.Int).Value = pProformaCabecera.EtpoUsoInmueble.idTpoUsoInmueble
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pProformaCabecera.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    idProforma = Convert.ToInt32(cmd.Parameters("@idProforma").Value)
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Editar(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera, ByRef idProforma As Integer) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaCabecera_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = idProforma
                'cmd.Parameters.Add("@idPosCliente", SqlDbType.Int).Value = pProformaCabecera.EposibleCliente.idPosCliente
                'cmd.Parameters.Add("@idRangoEdad", SqlDbType.Int).Value = pProformaCabecera.ErangoEdad.idRangoEdad
                'cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@idNivelInteres", SqlDbType.Int).Value = pProformaCabecera.EnivelInteres.idNivelInteres
                'cmd.Parameters.Add("@idComoSeEntero", SqlDbType.Int).Value = pProformaCabecera.EcomoSeEntero.idComoSeEntero
                'cmd.Parameters.Add("@idFormaContacto", SqlDbType.Int).Value = pProformaCabecera.EformaContacto.idFormaContacto
                'cmd.Parameters.Add("@descuento", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.descuento
                cmd.Parameters.Add("@idPerfilCrediticio", SqlDbType.Int).Value = pProformaCabecera.EperfilCrediticio.idPerfilCrediticio
                'cmd.Parameters.Add("@idCorredora", SqlDbType.Int).Value = pProformaCabecera.Ecorredora.idCorredora
                'cmd.Parameters.Add("@cuotaInicialPorc", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.cuotaInicialPorc
                'cmd.Parameters.Add("@montoInicial", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.montoInicial
                'cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pProformaCabecera.EentidadFin.idEntidadFin
                'cmd.Parameters.Add("@nroAños", SqlDbType.Int).Value = pProformaCabecera.nroAños
                'cmd.Parameters.Add("@tasaInteres", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.tasaInteres
                'cmd.Parameters.Add("@valorCuota", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.valorCuota
                cmd.Parameters.Add("@descCtaInicial", SqlDbType.Text).Value = pProformaCabecera.descCtaInicial
                cmd.Parameters.Add("@descSaldo", SqlDbType.Text).Value = pProformaCabecera.descSaldo
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pProformaCabecera.observacion
                'cmd.Parameters.Add("@idTpoUsoInmueble", SqlDbType.Int).Value = pProformaCabecera.EtpoUsoInmueble.idTpoUsoInmueble
                'cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = pProformaCabecera.estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pProformaCabecera.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EditarVersus(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera, ByRef idProforma As Integer) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaCabecera_edit", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idEmpresa", SqlDbType.Int).Value = pProformaCabecera.idEmpresa
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = idProforma
                'cmd.Parameters.Add("@idPosCliente", SqlDbType.Int).Value = pProformaCabecera.EposibleCliente.idPosCliente
                'cmd.Parameters.Add("@idRangoEdad", SqlDbType.Int).Value = pProformaCabecera.ErangoEdad.idRangoEdad
                'cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@idNivelInteres", SqlDbType.Int).Value = pProformaCabecera.EnivelInteres.idNivelInteres
                'cmd.Parameters.Add("@idComoSeEntero", SqlDbType.Int).Value = pProformaCabecera.EcomoSeEntero.idComoSeEntero
                'cmd.Parameters.Add("@idFormaContacto", SqlDbType.Int).Value = pProformaCabecera.EformaContacto.idFormaContacto
                'cmd.Parameters.Add("@descuento", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.descuento
                'cmd.Parameters.Add("@idPerfilCrediticio", SqlDbType.Int).Value = pProformaCabecera.EperfilCrediticio.idPerfilCrediticio
                'cmd.Parameters.Add("@idCorredora", SqlDbType.Int).Value = pProformaCabecera.Ecorredora.idCorredora
                'cmd.Parameters.Add("@cuotaInicialPorc", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.cuotaInicialPorc
                'cmd.Parameters.Add("@montoInicial", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.montoInicial
                'cmd.Parameters.Add("@idEntidadFin", SqlDbType.Int).Value = pProformaCabecera.EentidadFin.idEntidadFin
                'cmd.Parameters.Add("@nroAños", SqlDbType.Int).Value = pProformaCabecera.nroAños
                'cmd.Parameters.Add("@tasaInteres", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.tasaInteres
                'cmd.Parameters.Add("@valorCuota", SqlDbType.Decimal, 15, 2).Value = pProformaCabecera.valorCuota
                cmd.Parameters.Add("@descCtaInicial", SqlDbType.Text).Value = pProformaCabecera.descCtaInicial
                cmd.Parameters.Add("@descSaldo", SqlDbType.Text).Value = pProformaCabecera.descSaldo
                cmd.Parameters.Add("@observacion", SqlDbType.Text).Value = pProformaCabecera.observacion
                'cmd.Parameters.Add("@idTpoUsoInmueble", SqlDbType.Int).Value = pProformaCabecera.EtpoUsoInmueble.idTpoUsoInmueble
                'cmd.Parameters.Add("@estado", SqlDbType.Char, 1).Value = pProformaCabecera.estado
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pProformaCabecera.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Eliminar(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("-----", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProforma", SqlDbType.Int).Value = pProformaCabecera.idProforma
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pProformaCabecera.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Filtrar(ByVal descEmpresa As String, ByVal pProfoma As EproformaCabecera) As List(Of EproformaCabecera)
        Dim proformas As List(Of EproformaCabecera) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaCabecera_fil", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProfoma.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProfoma.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProfoma.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EproformaCabecera)
                            Dim proforma As EproformaCabecera = Nothing
                            Do While dr.Read
                                proforma = New EproformaCabecera( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("comentarios")), _
                                    dr.GetString(dr.GetOrdinal("fchDscto")), _
                                    dr.GetInt32(dr.GetOrdinal("idRangoEdad")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadDe")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadHasta")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("idNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetInt32(dr.GetOrdinal("idComoSeEntero")), _
                                    dr.GetString(dr.GetOrdinal("descComoSeEntero")), _
                                    dr.GetInt32(dr.GetOrdinal("idFormaContacto")), _
                                    dr.GetString(dr.GetOrdinal("descFormaContacto")), _
                                    dr.GetInt32(dr.GetOrdinal("vigenciaDescuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoAdicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetInt32(dr.GetOrdinal("idPerfilCrediticio")), _
                                    dr.GetString(dr.GetOrdinal("descPerfilCrediticio")), _
                                    dr.GetInt32(dr.GetOrdinal("idCorredora")), _
                                    dr.GetString(dr.GetOrdinal("nombreCorredora")), _
                                    dr.GetString(dr.GetOrdinal("apeMatCorredora")), _
                                    dr.GetString(dr.GetOrdinal("apePatCorredora")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoUsoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoUsoInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("cuotaInicialPorc")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoInicial")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldoAFinanciar")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetInt32(dr.GetOrdinal("nroAños")), _
                                    dr.GetDecimal(dr.GetOrdinal("tasaInteres")), _
                                    dr.GetDecimal(dr.GetOrdinal("valorCuota")), _
                                    dr.GetString(dr.GetOrdinal("descCtaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descSaldo")), _
                                    dr.GetString(dr.GetOrdinal("observacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMonto")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMontoFinal")), _
                                    dr.GetString(dr.GetOrdinal("OtroDocumento")))
                                proformas.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function
    Public Shared Function FiltrarCtrl(ByVal descEmpresa As String, ByVal pProfoma As EproformaCabecera) As List(Of EproformaCabecera)
        Dim proformas As List(Of EproformaCabecera) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaCabecera_filCtrl", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProfoma.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProfoma.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProfoma.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EproformaCabecera)
                            Dim proforma As EproformaCabecera = Nothing
                            Do While dr.Read
                                proforma = New EproformaCabecera( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("comentarios")), _
                                    dr.GetString(dr.GetOrdinal("fchDscto")), _
                                    dr.GetInt32(dr.GetOrdinal("idRangoEdad")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadDe")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadHasta")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("idNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetInt32(dr.GetOrdinal("idComoSeEntero")), _
                                    dr.GetString(dr.GetOrdinal("descComoSeEntero")), _
                                    dr.GetInt32(dr.GetOrdinal("idFormaContacto")), _
                                    dr.GetString(dr.GetOrdinal("descFormaContacto")), _
                                    dr.GetInt32(dr.GetOrdinal("vigenciaDescuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoAdicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetInt32(dr.GetOrdinal("idPerfilCrediticio")), _
                                    dr.GetString(dr.GetOrdinal("descPerfilCrediticio")), _
                                    dr.GetInt32(dr.GetOrdinal("idCorredora")), _
                                    dr.GetString(dr.GetOrdinal("nombreCorredora")), _
                                    dr.GetString(dr.GetOrdinal("apeMatCorredora")), _
                                    dr.GetString(dr.GetOrdinal("apePatCorredora")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoUsoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoUsoInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("cuotaInicialPorc")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoInicial")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldoAFinanciar")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetInt32(dr.GetOrdinal("nroAños")), _
                                    dr.GetDecimal(dr.GetOrdinal("tasaInteres")), _
                                    dr.GetDecimal(dr.GetOrdinal("valorCuota")), _
                                    dr.GetString(dr.GetOrdinal("descCtaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descSaldo")), _
                                    dr.GetString(dr.GetOrdinal("observacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMonto")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMontoFinal")), _
                                    dr.GetString(dr.GetOrdinal("OtroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("techopropio")), _
                                    dr.GetInt32(dr.GetOrdinal("FlagInmuebleOK")), _
                                    dr.GetString(dr.GetOrdinal("inmueble")))
                                proformas.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function
    Public Shared Function FiltrarConsultaCtrl(ByVal descEmpresa As String, ByVal pProfoma As EproformaCabecera) As List(Of EproformaCabecera)
        Dim proformas As List(Of EproformaCabecera) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaCabeceraConsulta_filCtrl", cn)
                cmd.CommandType = CommandType.StoredProcedure
                'cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProfoma.idProyecto
                'cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProfoma.idEtapa
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProfoma.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EproformaCabecera)
                            Dim proforma As EproformaCabecera = Nothing
                            Do While dr.Read
                                proforma = New EproformaCabecera( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetInt32(dr.GetOrdinal("idPosCliente")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoDcmto")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetInt32(dr.GetOrdinal("sexo")), _
                                    dr.GetInt32(dr.GetOrdinal("edad")), _
                                    dr.GetInt32(dr.GetOrdinal("idEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("desEstCivil")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetString(dr.GetOrdinal("idUbigeo")), _
                                    dr.GetString(dr.GetOrdinal("direccion")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetInt32(dr.GetOrdinal("idOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("descOcupacion")), _
                                    dr.GetString(dr.GetOrdinal("centroLaboral")), _
                                    dr.GetString(dr.GetOrdinal("telefonoLaboral")), _
                                    dr.GetString(dr.GetOrdinal("comentarios")), _
                                    dr.GetString(dr.GetOrdinal("fchDscto")), _
                                    dr.GetInt32(dr.GetOrdinal("idRangoEdad")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadDe")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadHasta")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("idNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetInt32(dr.GetOrdinal("idComoSeEntero")), _
                                    dr.GetString(dr.GetOrdinal("descComoSeEntero")), _
                                    dr.GetInt32(dr.GetOrdinal("idFormaContacto")), _
                                    dr.GetString(dr.GetOrdinal("descFormaContacto")), _
                                    dr.GetInt32(dr.GetOrdinal("vigenciaDescuento")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoAdicional")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetInt32(dr.GetOrdinal("idPerfilCrediticio")), _
                                    dr.GetString(dr.GetOrdinal("descPerfilCrediticio")), _
                                    dr.GetInt32(dr.GetOrdinal("idCorredora")), _
                                    dr.GetString(dr.GetOrdinal("nombreCorredora")), _
                                    dr.GetString(dr.GetOrdinal("apeMatCorredora")), _
                                    dr.GetString(dr.GetOrdinal("apePatCorredora")), _
                                    dr.GetInt32(dr.GetOrdinal("idTpoUsoInmueble")), _
                                    dr.GetString(dr.GetOrdinal("descTpoUsoInmueble")), _
                                    dr.GetDecimal(dr.GetOrdinal("cuotaInicialPorc")), _
                                    dr.GetDecimal(dr.GetOrdinal("montoInicial")), _
                                    dr.GetDecimal(dr.GetOrdinal("saldoAFinanciar")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetInt32(dr.GetOrdinal("nroAños")), _
                                    dr.GetDecimal(dr.GetOrdinal("tasaInteres")), _
                                    dr.GetDecimal(dr.GetOrdinal("valorCuota")), _
                                     dr.GetString(dr.GetOrdinal("descCtaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descSaldo")), _
                                    dr.GetString(dr.GetOrdinal("observacion")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMonto")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMontoFinal")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetString(dr.GetOrdinal("OtroDocumento")))
                                proformas.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function

    '-------    MENU REPORTE    ------------'
    <SqlProcedure(Name:="usp_proforma_reporte")> _
    Public Shared Function ReporteProforma(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As List(Of EproformaCabecera)
        Dim proformas As List(Of EproformaCabecera) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proforma_reporte", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@idFormaContacto", SqlDbType.Int).Value = pProformaCabecera.EformaContacto.idFormaContacto
                cmd.Parameters.Add("@idNivelInteres", SqlDbType.Int).Value = pProformaCabecera.EnivelInteres.idNivelInteres
                cmd.Parameters.Add("@idComoSeEntero", SqlDbType.Int).Value = pProformaCabecera.EcomoSeEntero.idComoSeEntero
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pProformaCabecera.EposibleCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@idModelo", SqlDbType.Int).Value = pProformaCabecera.EmodeloInmueble.idModelo
                cmd.Parameters.Add("@idPerfilCrediticio", SqlDbType.Int).Value = pProformaCabecera.EperfilCrediticio.idPerfilCrediticio
                cmd.Parameters.Add("@FechaInicial", SqlDbType.Char, 10).Value = pProformaCabecera.fchInicio
                cmd.Parameters.Add("@FechaFinal", SqlDbType.Char, 10).Value = pProformaCabecera.fchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProformaCabecera.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EproformaCabecera)
                            Dim proforma As EproformaCabecera = Nothing
                            Do While dr.Read
                                proforma = New EproformaCabecera( _
                                    dr.GetInt64(dr.GetOrdinal("correlativo")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetDateTime(dr.GetOrdinal("hrCreacion")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalIngreso")), _
                                    dr.GetString(dr.GetOrdinal("distritoCliente")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadDe")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadHasta")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("idNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetInt32(dr.GetOrdinal("idComoSeEntero")), _
                                    dr.GetString(dr.GetOrdinal("descComoSeEntero")), _
                                    dr.GetInt32(dr.GetOrdinal("idFormaContacto")), _
                                    dr.GetString(dr.GetOrdinal("descFormaContacto")), _
                                    dr.GetInt32(dr.GetOrdinal("idPerfilCrediticio")), _
                                    dr.GetString(dr.GetOrdinal("descPerfilCrediticio")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMontoFinal")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetString(dr.GetOrdinal("descCtaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descSaldo")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                proformas.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function
    ' Store para sub-modulo consulta proforma Modulo usp_Consulta_proforma
    Public Shared Function ConsultaProformaModulo(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As List(Of EproformaCabecera)
        Dim proformas As List(Of EproformaCabecera) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_consulta_proforma", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@FechaInicial", SqlDbType.Char, 10).Value = pProformaCabecera.fchInicio
                cmd.Parameters.Add("@FechaFinal", SqlDbType.Char, 10).Value = pProformaCabecera.fchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProformaCabecera.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EproformaCabecera)
                            Dim proforma As EproformaCabecera = Nothing
                            Do While dr.Read
                                proforma = New EproformaCabecera( _
                                    dr.GetInt64(dr.GetOrdinal("correlativo")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetDateTime(dr.GetOrdinal("hrCreacion")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalIngreso")), _
                                    dr.GetString(dr.GetOrdinal("distritoCliente")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadDe")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadHasta")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("idNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetInt32(dr.GetOrdinal("idComoSeEntero")), _
                                    dr.GetString(dr.GetOrdinal("descComoSeEntero")), _
                                    dr.GetInt32(dr.GetOrdinal("idFormaContacto")), _
                                    dr.GetString(dr.GetOrdinal("descFormaContacto")), _
                                    dr.GetInt32(dr.GetOrdinal("idPerfilCrediticio")), _
                                    dr.GetString(dr.GetOrdinal("descPerfilCrediticio")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMontoFinal")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetString(dr.GetOrdinal("descCtaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descSaldo")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                proformas.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function
    ' Store para sub-modulo Reporte consulta proforma usp_Consulta_proforma
    Public Shared Function ConsultaProforma(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As List(Of EproformaCabecera)
        Dim proformas As List(Of EproformaCabecera) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            'Using cmd As New SqlCommand("usp_Consulta_Proforma", cn)
            Using cmd As New SqlCommand("usp_proforma_reporte", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@idFormaContacto", SqlDbType.Int).Value = pProformaCabecera.idFormaContacto
                cmd.Parameters.Add("@idNivelInteres", SqlDbType.Int).Value = pProformaCabecera.EnivelInteres.idNivelInteres
                cmd.Parameters.Add("@idComoSeEntero", SqlDbType.Int).Value = pProformaCabecera.EcomoSeEntero.idComoSeEntero
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pProformaCabecera.idUbigeo
                cmd.Parameters.Add("@idModelo", SqlDbType.Int).Value = pProformaCabecera.EmodeloInmueble.idModelo
                cmd.Parameters.Add("@idPerfilCrediticio", SqlDbType.Int).Value = pProformaCabecera.EperfilCrediticio.idPerfilCrediticio
                cmd.Parameters.Add("@FechaInicial", SqlDbType.Char, 10).Value = pProformaCabecera.fchInicio
                cmd.Parameters.Add("@FechaFinal", SqlDbType.Char, 10).Value = pProformaCabecera.fchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProformaCabecera.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EproformaCabecera)
                            Dim proforma As EproformaCabecera = Nothing
                            Do While dr.Read
                                proforma = New EproformaCabecera( _
                                    dr.GetInt64(dr.GetOrdinal("correlativo")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetDateTime(dr.GetOrdinal("hrCreacion")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalIngreso")), _
                                    dr.GetString(dr.GetOrdinal("distritoCliente")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadDe")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadHasta")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("idNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetInt32(dr.GetOrdinal("idComoSeEntero")), _
                                    dr.GetString(dr.GetOrdinal("descComoSeEntero")), _
                                    dr.GetInt32(dr.GetOrdinal("idFormaContacto")), _
                                    dr.GetString(dr.GetOrdinal("descFormaContacto")), _
                                    dr.GetInt32(dr.GetOrdinal("idPerfilCrediticio")), _
                                    dr.GetString(dr.GetOrdinal("descPerfilCrediticio")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMontoFinal")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetString(dr.GetOrdinal("descCtaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descSaldo")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                proformas.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function


    '-------    MENU REPORTE EVOLTA / VERSUS    ------------'
    <SqlProcedure(Name:="usp_proforma_reporteXEmpresa")> _
    Public Shared Function ReporteProformaXEmpresa(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As List(Of EproformaCabecera)
        Dim proformas As List(Of EproformaCabecera) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proforma_reporteXEmpresa", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idEmpresa", SqlDbType.Int).Value = pProformaCabecera.idEmpresa
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@idFormaContacto", SqlDbType.Int).Value = pProformaCabecera.EformaContacto.idFormaContacto
                cmd.Parameters.Add("@idNivelInteres", SqlDbType.Int).Value = pProformaCabecera.EnivelInteres.idNivelInteres
                cmd.Parameters.Add("@idComoSeEntero", SqlDbType.Int).Value = pProformaCabecera.EcomoSeEntero.idComoSeEntero
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pProformaCabecera.EposibleCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@idModelo", SqlDbType.Int).Value = pProformaCabecera.EmodeloInmueble.idModelo
                cmd.Parameters.Add("@idPerfilCrediticio", SqlDbType.Int).Value = pProformaCabecera.EperfilCrediticio.idPerfilCrediticio
                cmd.Parameters.Add("@FechaInicial", SqlDbType.Char, 10).Value = pProformaCabecera.fchInicio
                cmd.Parameters.Add("@FechaFinal", SqlDbType.Char, 10).Value = pProformaCabecera.fchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProformaCabecera.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EproformaCabecera)
                            Dim proforma As EproformaCabecera = Nothing
                            Do While dr.Read
                                proforma = New EproformaCabecera( _
                                    dr.GetInt64(dr.GetOrdinal("correlativo")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetDateTime(dr.GetOrdinal("hrCreacion")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalIngreso")), _
                                    dr.GetString(dr.GetOrdinal("distritoCliente")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadDe")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadHasta")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("idNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetInt32(dr.GetOrdinal("idComoSeEntero")), _
                                    dr.GetString(dr.GetOrdinal("descComoSeEntero")), _
                                    dr.GetInt32(dr.GetOrdinal("idFormaContacto")), _
                                    dr.GetString(dr.GetOrdinal("descFormaContacto")), _
                                    dr.GetInt32(dr.GetOrdinal("idPerfilCrediticio")), _
                                    dr.GetString(dr.GetOrdinal("descPerfilCrediticio")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMontoFinal")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetString(dr.GetOrdinal("descCtaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descSaldo")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                proformas.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function
    Public Shared Function ReporteProformaXVersus(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As List(Of EproformaCabecera)
        Dim proformas As List(Of EproformaCabecera) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proforma_reporteXVersus", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idEmpresa", SqlDbType.Int).Value = pProformaCabecera.idEmpresa
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idVendedor", SqlDbType.Int).Value = pProformaCabecera.Evendedor.idVendedor
                cmd.Parameters.Add("@idFormaContacto", SqlDbType.Int).Value = pProformaCabecera.EformaContacto.idFormaContacto
                cmd.Parameters.Add("@idNivelInteres", SqlDbType.Int).Value = pProformaCabecera.EnivelInteres.idNivelInteres
                cmd.Parameters.Add("@idComoSeEntero", SqlDbType.Int).Value = pProformaCabecera.EcomoSeEntero.idComoSeEntero
                cmd.Parameters.Add("@idUbigeo", SqlDbType.Char, 6).Value = pProformaCabecera.EposibleCliente.Eubigeo.idUbigeo
                cmd.Parameters.Add("@idModelo", SqlDbType.Int).Value = pProformaCabecera.EmodeloInmueble.idModelo
                cmd.Parameters.Add("@idPerfilCrediticio", SqlDbType.Int).Value = pProformaCabecera.EperfilCrediticio.idPerfilCrediticio
                cmd.Parameters.Add("@FechaInicial", SqlDbType.Char, 10).Value = pProformaCabecera.fchInicio
                cmd.Parameters.Add("@FechaFinal", SqlDbType.Char, 10).Value = pProformaCabecera.fchFin
                cmd.Parameters.Add("@filtro", SqlDbType.VarChar, 55).Value = pProformaCabecera.filtro
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EproformaCabecera)
                            Dim proforma As EproformaCabecera = Nothing
                            Do While dr.Read
                                proforma = New EproformaCabecera( _
                                    dr.GetInt64(dr.GetOrdinal("correlativo")), _
                                    dr.GetInt32(dr.GetOrdinal("idEmpresa")), _
                                    dr.GetString(dr.GetOrdinal("descEmpresa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetDateTime(dr.GetOrdinal("hrCreacion")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetString(dr.GetOrdinal("nroDocumento")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetString(dr.GetOrdinal("telefonoFijo")), _
                                    dr.GetString(dr.GetOrdinal("telefonoCelular")), _
                                    dr.GetString(dr.GetOrdinal("email")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalIngreso")), _
                                    dr.GetString(dr.GetOrdinal("distritoCliente")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadDe")), _
                                    dr.GetString(dr.GetOrdinal("RangoEdadHasta")), _
                                    dr.GetString(dr.GetOrdinal("nombreVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apePatVendedor")), _
                                    dr.GetString(dr.GetOrdinal("apeMatVendedor")), _
                                    dr.GetInt32(dr.GetOrdinal("idNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetInt32(dr.GetOrdinal("idComoSeEntero")), _
                                    dr.GetString(dr.GetOrdinal("descComoSeEntero")), _
                                    dr.GetInt32(dr.GetOrdinal("idFormaContacto")), _
                                    dr.GetString(dr.GetOrdinal("descFormaContacto")), _
                                    dr.GetInt32(dr.GetOrdinal("idPerfilCrediticio")), _
                                    dr.GetString(dr.GetOrdinal("descPerfilCrediticio")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMontoFinal")), _
                                    dr.GetDecimal(dr.GetOrdinal("descuento")), _
                                    dr.GetString(dr.GetOrdinal("descCtaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descSaldo")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                proformas.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function

    '-------   MENU ATENCION CLIENTE  ------'
    Public Shared Function SeleccionarXPosCliente(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As List(Of EproformaCabecera)
        Dim proformas As List(Of EproformaCabecera) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaCabecera_selXPosCliente", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idPosCliente", SqlDbType.Int).Value = pProformaCabecera.idCliente
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EproformaCabecera)
                            Dim proforma As EproformaCabecera = Nothing
                            Do While dr.Read
                                proforma = New EproformaCabecera( _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                     dr.GetDecimal(dr.GetOrdinal("totalMonto")), _
                                    dr.GetString(dr.GetOrdinal("descCtaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descSaldo")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                proformas.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function

    '-------   MENU ATENCION CLIENTE VERSUS ------'
    Public Shared Function SeleccionarXPosClienteXVersus(ByVal descEmpresa As String, ByVal pProformaCabecera As EproformaCabecera) As List(Of EproformaCabecera)
        Dim proformas As List(Of EproformaCabecera) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_proformaCabecera_selXPosClienteXVersus", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idProyecto", SqlDbType.Int).Value = pProformaCabecera.idProyecto
                cmd.Parameters.Add("@idEtapa", SqlDbType.Int).Value = pProformaCabecera.idEtapa
                cmd.Parameters.Add("@idPosCliente", SqlDbType.Int).Value = pProformaCabecera.idCliente
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            proformas = New List(Of EproformaCabecera)
                            Dim proforma As EproformaCabecera = Nothing
                            Do While dr.Read
                                proforma = New EproformaCabecera( _
                                    dr.GetInt32(dr.GetOrdinal("idEmpresa")), _
                                    dr.GetString(dr.GetOrdinal("descEmpresa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProyecto")), _
                                    dr.GetString(dr.GetOrdinal("descProyecto")), _
                                    dr.GetInt32(dr.GetOrdinal("idEtapa")), _
                                    dr.GetString(dr.GetOrdinal("descEtapa")), _
                                    dr.GetInt32(dr.GetOrdinal("idProforma")), _
                                    dr.GetString(dr.GetOrdinal("fchCreacion")), _
                                    dr.GetInt32(dr.GetOrdinal("idVendedor")), _
                                    dr.GetString(dr.GetOrdinal("nombre")), _
                                    dr.GetString(dr.GetOrdinal("apePaterno")), _
                                    dr.GetString(dr.GetOrdinal("apeMaterno")), _
                                    dr.GetInt32(dr.GetOrdinal("idNivelInteres")), _
                                    dr.GetString(dr.GetOrdinal("descNivelInteres")), _
                                    dr.GetInt32(dr.GetOrdinal("idEntidadFin")), _
                                    dr.GetString(dr.GetOrdinal("descEntidadFin")), _
                                    dr.GetDecimal(dr.GetOrdinal("totalMonto")), _
                                    dr.GetString(dr.GetOrdinal("descCtaInicial")), _
                                    dr.GetString(dr.GetOrdinal("descSaldo")), _
                                    dr.GetString(dr.GetOrdinal("observacion")))
                                proformas.Add(proforma)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return proformas
    End Function
    '---------------------------------------'

End Class
